<HTML>
<HEAD>
<!-- This HTML file has been created by texi2html 1.29
     from sysadmin.tnf on 19 December 2010 -->

<TITLE>Eli System Administration Guide - Cache Management</TITLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000" BACKGROUND="gifs/bg.gif">
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0" VALIGN=BOTTOM>
<TR VALIGN=BOTTOM>
<TD WIDTH="160" VALIGN=BOTTOM>
<A HREF="http://eli-project.sourceforge.net/">
<IMG SRC="gifs/elilogo.gif" BORDER=0>
</A>&nbsp;
</TD>
<TD WIDTH="25" VALIGN=BOTTOM>
<img src="gifs/empty.gif" WIDTH=25 HEIGHT=25>
</TD>
<TD ALIGN=LEFT WIDTH="475" VALIGN=BOTTOM>
<A HREF="index.html"><IMG SRC="gifs/title.png" BORDER=0></A>
</TD>
<!-- |DELETE FOR SOURCEFORGE LOGO|
<TD>
<a href="http://sourceforge.net/projects/eli-project">
<img
  src="http://sflogo.sourceforge.net/sflogo.php?group_id=70447&amp;type=13"
  width="120" height="30"
  alt="Get Eli: Translator Construction Made Easy at SourceForge.net.
    Fast, secure and Free Open Source software downloads"/>
</a>
</TD>
|DELETE FOR SOURCEFORGE LOGO| -->
</TR>
</TABLE>

<HR size=1 noshade width=785 align=left>
<TABLE BORDER=0 CELLSPACING=2 CELLPADDING=0>
<TR>
<TD VALIGN=TOP WIDTH="160">
<h4>General Information</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="index.html">Eli: Translator Construction Made Easy</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gindex_1.html#SEC1">Global Index</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="faq_toc.html" >Frequently Asked Questions</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Tutorials</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="EliRefCard_toc.html">Quick Reference Card</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="novice_toc.html">Guide For new Eli Users</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="news_toc.html">Release Notes of Eli</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="nametutorial_toc.html">Tutorial on Name Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="typetutorial_toc.html">Tutorial on Type Analysis</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Reference Manuals</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ui_toc.html">User Interface</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="pp_toc.html">Eli products and parameters</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lidoref_toc.html">LIDO Reference Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ee.html" >Typical Eli Usage Errors</a> </td></tr>
</table>

<h4>Libraries</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lib_toc.html">Eli library routines</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="modlib_toc.html">Specification Module Library</a></td></tr>
</table>

<h4>Translation Tasks</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lex_toc.html">Lexical analysis specification</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="syntax_toc.html">Syntactic Analysis Manual</a></td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="comptrees_toc.html">Computation in Trees</a></td></tr>
</table>

<h4>Tools</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="lcl_toc.html">LIGA Control Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="show_toc.html">Debugging Information for LIDO</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="gorto_toc.html">Graphical ORder TOol</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="fw_toc.html">FunnelWeb User's Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="ptg_toc.html">Pattern-based Text Generator</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="deftbl_toc.html">Property Definition Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="oil_toc.html">Operator Identification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="tp_toc.html">Tree Grammar Specification Language</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="clp_toc.html">Command Line Processing</a> </td></tr>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="cola_toc.html">COLA Options Reference Manual</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="idem_toc.html">Generating Unparsing Code</a> </td></tr>
</table>
<p>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="mon_toc.html">Monitoring a Processor's Execution</a> </td></tr>
</table>

<h4>Administration</h4>

<table BORDER=0 CELLSPACING=0 CELLPADDING=0>
<tr valign=top><td><img src="gifs/gelbekugel.gif" WIDTH=7 HEIGHT=7 ALT=" o"> </td><td><a href="sysadmin_toc.html">System Administration Guide</a> </td></tr>
</table>

<HR WIDTH="100%">
<A HREF="mailto:eli-project-users@lists.sourceforge.net">
<IMG SRC="gifs/button_mail.gif" BORDER=0 ALIGN="left"></A>
<A HREF="index.html"><IMG SRC="gifs/home.gif" BORDER=0 ALIGN="right"></A>

</TD>
<TD VALIGN=TOP WIDTH="25"><img src="gifs/empty.gif" WIDTH=25 HEIGHT=25></TD>

<TD VALIGN=TOP WIDTH="600">
<H1>Eli System Administration Guide</H1>
<P>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="sysadmin_1.html"><IMG SRC="gifs/prev.gif" ALT="Previous Chapter" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="sysadmin_3.html"><IMG SRC="gifs/next.gif" ALT="Next Chapter" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="sysadmin_toc.html"><IMG SRC="gifs/up.gif" ALT="Table of Contents" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT="">
<HR size=1 noshade width=600 align=left>
<H1><A NAME="SEC4" HREF="sysadmin_toc.html#SEC4">Cache Management</A></H1>
<P>
Each cache directory contains
a derivation graph built from some set of packages,
plus all of the artifacts created when providing products defined by that
derivation graph.
A user may want to have more than one cache for several reasons:
<P>
<UL>
<LI>
A cache used on a completed project can be deleted without losing artifacts
associated with ongoing projects.
<P>
<LI>
A user may collaborate with different people on different projects, each
having its own cache.
<P>
<LI>
Different derivation graphs may be appropriate for different projects.
</UL>
In order to work with more than one cache, the user must be able to refer
to each by a unique name; in order to have caches with different
derivation graphs, the user must be able to control the set of packages
from which a cache is built.
<P>
<A NAME="IDX10"></A>
<A NAME="IDX11"></A>
<H2><A NAME="SEC5" HREF="sysadmin_toc.html#SEC5">Name of the cache</A></H2>
<P>
When the <CODE>eli</CODE> command
<A NAME="IDX13"></A>
<A NAME="IDX12"></A>
is executed, it specifies the name of a cache directory as follows:
<P>
<UL>
<LI>
If the <CODE>eli</CODE> command has the parameter <CODE>-c <SAMP>`dir'</SAMP></CODE>,
the name of the cache directory is <SAMP>`dir'</SAMP>.
<SAMP>`dir'</SAMP> must be an absolute path name.
<P>
<LI>
Otherwise the name of the cache directory is <CODE>$ODIN/$ODINVIEW</CODE>.
<CODE>$ODIN</CODE> must be an absolute path name.
<P>
<UL>
<LI>
If the environment variable
<A NAME="IDX15"></A>
<A NAME="IDX14"></A>
<VAR>ODIN</VAR> is not set, the first component of
the cache directory name is <CODE>$HOME/.ODIN</CODE>.
<P>
<LI>
If the environment variable
<A NAME="IDX17"></A>
<A NAME="IDX16"></A>
<VAR>ODINVIEW</VAR> is not set, the second
component of the cache directory name is the result of the command
<A NAME="IDX19"></A>
<A NAME="IDX18"></A>
<CODE>uname -n</CODE>
(<CODE>uname -n</CODE> normally returns the name of the machine executing the
command).
If the command <CODE>uname -n</CODE> returns an empty string, the second
component of the cache directory name is the string <CODE>local</CODE>.
</UL>
</UL>
If the specified cache directory does not exist, a new cache is built
and represented by a new directory with the specified name.
<P>
The environment variable
<A NAME="IDX21"></A>
<A NAME="IDX20"></A>
<VAR>ODINVIEW</VAR> is commonly used in a classroom
or laboratory having a number of identical computers that share a
<A NAME="IDX22"></A>
common file system.
Since the computers share a common file system, every execution
of the <CODE>eli</CODE> command will have the same value of <VAR>ODINVIEW</VAR>.
As noted above, if <VAR>ODINVIEW</VAR> is not set then the default cache name
will incorporate the name of the particular computer on which it was created.
Therefore a user will have a different cache for each machine on which they
have run the command <CODE>eli</CODE> without a <CODE>-c</CODE> parameter.
This can be avoided if the user's startup script defines <VAR>ODINVIEW</VAR> as
a constant value.
<P>
A different situation arises with a number of clusters of machines of
different architectures, all sharing a common file system.
Each cache is tied to a specific architecture, so there must be a distinct
default cache name for each cluster if the <CODE>eli</CODE> command is to be used
without a <CODE>-c</CODE> parameter.
The user's startup script should therefore define
<VAR>ODINVIEW</VAR> as the result of a command such as <CODE>arch</CODE>,
which returns a string unique to the architecture of the machine running
the command,
rather than a constant value.
<P>
<A NAME="IDX23"></A>
<A NAME="IDX24"></A>
<H2><A NAME="SEC6" HREF="sysadmin_toc.html#SEC6">Packages in the cache</A></H2>
<P>
The set of packages from which a cache is built is determined either
at the time that an <CODE>eli</CODE> command with the <CODE>-R</CODE> parameter is
executed on that cache,
or
at the time a non-existent cache is specified.
In either case, the packages making up the set are drawn from four sources,
in order:
<P>
<OL>
<LI>
Parameters of the <CODE>eli</CODE> command, each consisting of <CODE>-p</CODE> followed
by the absolute path name of a directory.
An <CODE>eli</CODE> command may have an arbitrary number of such parameters, and
they are considered in order from left to right.
<P>
<LI>
The colon-separated list of absolute path names in the
<A NAME="IDX26"></A>
<A NAME="IDX25"></A>
<VAR>ODINPATH</VAR> environment variable.
<P>
<LI>
The standard Eli packages.
<P>
<LI>
The standard Odin packages.
</OL>
Each of the directories may represent a single package or a collection of
packages with a
<A NAME="IDX28"></A>
<A NAME="IDX27"></A>
<TT>`PKGLST'</TT> file
(see  <A HREF="sysadmin_1.html#SEC1">Package Management</A>).
<P>
The order in which the directories are considered is important, because
only the first package with a given name is entered into the set from which
the cache is built.
Thus it is possible to override standard Eli and Odin packages by providing
replacements whose names are the same as the names of the packages to be
replaced
(see  <A HREF="sysadmin_4.html#SEC13">Maintaining distributed packages</A>).
<P>
If an <CODE>eli</CODE> command specifying an existing cache is executed without
the <CODE>-R</CODE> parameter, then any <CODE>-p</CODE> parameters are ignored.
The set of packages available is the set specified when that cache was
originally created, or when it was last specified by an <CODE>eli</CODE> command
with the <CODE>-R</CODE> parameter.
<P>
<A NAME="IDX29"></A>
<A NAME="IDX30"></A>
<H2><A NAME="SEC7" HREF="sysadmin_toc.html#SEC7">The <CODE>odin</CODE> command</A></H2>
<P>
Odin can be invoked directly with the <CODE>odin</CODE> command, although there is
no need to do so except to create a cache without using any of the
standard Eli packages.
<P>
Unless the <CODE>-R</CODE> parameter is given, the behavior of the <CODE>odin</CODE>
and <CODE>eli</CODE> commands are identical when they specify an existing cache.
If the specified cache does not exist, or if the <CODE>-R</CODE> parameter is
given, then the sets of packages created by the two commands are different.
When an <CODE>odin</CODE> command is executed in either of those cases, the
packages making up the set are drawn from two sources, in order:
<P>
<OL>
<LI>
The colon-separated list of absolute path names in the
<A NAME="IDX32"></A>
<A NAME="IDX31"></A>
<VAR>ODINPATH</VAR> environment variable.
<P>
<LI>
The standard Odin packages.
</OL>
<P>
This differs from the behavior of the <CODE>eli</CODE> command
(see  <A HREF="sysadmin_2.html#SEC6">Packages in the cache</A>).
The <CODE>odin</CODE> command does not accept <CODE>-p</CODE> parameters and
does not consider the standard Eli packages.
The effect of <CODE>-p</CODE> parameters is obtained by building an appropriate
colon-separated list and making it the value of the environment variable
<VAR>ODINPATH</VAR> before executing the <CODE>odin</CODE> command.
<P>
<HR size=1 noshade width=600 align=left>
<P>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="sysadmin_1.html"><IMG SRC="gifs/prev.gif" ALT="Previous Chapter" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="sysadmin_3.html"><IMG SRC="gifs/next.gif" ALT="Next Chapter" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT=""><A HREF="sysadmin_toc.html"><IMG SRC="gifs/up.gif" ALT="Table of Contents" BORDER="0"></A>
<IMG SRC="gifs/empty.gif" WIDTH=25 HEIGHT=25 ALT="">
<HR size=1 noshade width=600 align=left>
</TD>
</TR>
</TABLE>

</BODY></HTML>
